package com.zebra.remoting.config;

import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @Auther: King.Song
 * @Description:
 */
public enum StateCode {

    /**  系统  */
    Success(200),            // "成功"),
    SysException(500),      // 系统异常， "系统开小差了"), 业务方面的错误! 这种错误需要不断调试尽量将到最低

    GatewayDowntime(555),   // 网关挂掉 1，重新获取网关地址, 2，重新进入大厅；
    GameServerDowntime(560), // 子游戏TMS 需要客户端 返回大厅；
    LobbyServerDowntime(570), // 大厅服务器挂了; 整个服务不能使用了; 只有网关可以用 ； 返回登录界面

    InactiveChannel(616),      //该消息号用于网关断线; 不一定登录失效
    LoginUn(666),              // 您的登录信息已失效, 请重新登录!    账号出现异常,请重新登录！ 客户退回登录界面

    //公共业务 消息
    ParamInvalid(1000), //, 0, "请求参数无效，请重新输入" 模糊提示, 不用精确提示，以免安全漏洞
    ;


    private final static Map<Integer, StateCode> codeMap = Arrays.stream(StateCode.values()).collect(Collectors.toMap(StateCode::code, code -> code));

    private final int code;

    StateCode(int code) {
        this.code = code;
    }

    public int code() {
        return this.code;
    }

    public static StateCode parse(Integer code) {
        return codeMap.get(code);
    }

}
